Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

More linear algebra #1821

Merged
merged 10 commits into from
Jul 19, 2024
Merged

More linear algebra #1821

merged 10 commits into from
Jul 19, 2024

Conversation

joschmitt
Copy link
Collaborator

Adjust to Nemocas/AbstractAlgebra.jl#1738 and deduplicate some code.

I decided to redirect lazy_transpose to transpose for the flint types because this allows us to just call the generic code in more cases.

Closes #1795.

@joschmitt joschmitt marked this pull request as draft July 11, 2024 09:33
@joschmitt joschmitt marked this pull request as ready for review July 18, 2024 10:55
@lgoettgens
Copy link
Collaborator

This now has some conflicts. @joschmitt could you have a look?

@joschmitt
Copy link
Collaborator Author

This now has some conflicts. @joschmitt could you have a look?

I rebased.

Copy link

codecov bot commented Jul 19, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 86.05%. Comparing base (ca3eba9) to head (85747e9).

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #1821      +/-   ##
==========================================
- Coverage   86.09%   86.05%   -0.05%     
==========================================
  Files          98       98              
  Lines       36404    36259     -145     
==========================================
- Hits        31343    31202     -141     
+ Misses       5061     5057       -4     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@lgoettgens
Copy link
Collaborator

@fingolfin @thofma this needs a manual merge due to differently named CI jobs (matching branch in Hecke)

]
a = matrix(R, [1 2 3; 3 2 1; 0 0 2])

@test AbstractAlgebra.Solve.matrix_normal_form_type(R) === AbstractAlgebra.Solve.HowellFormTrait()
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Shouldn't the rhs here be NFTrait? And if not, why can this ring have two different traits? Or is there something going on that I don't see?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's Z/nZ, so sometimes there are zero divisors and sometimes it is a field. We (Tommy) decided that we always give it the HowellFormTrait to not make the used normal form runtime dependent.
There is still code (via flint) that can only be used in the case where n is prime, so I explicitly call this in this testset.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah ok. Thanks for the explanation

@thofma
Copy link
Member

thofma commented Jul 19, 2024

Where is

AbstractAlgebra.Solve.matrix_normal_form_type(R) = AbstractAlgebra.Solve.HowellFormTrait()

set for Z/nZ?

@joschmitt
Copy link
Collaborator Author

Where is

AbstractAlgebra.Solve.matrix_normal_form_type(R) = AbstractAlgebra.Solve.HowellFormTrait()

set for Z/nZ?

In AbstractAlgebra. It uses the generic function for rings via is_domain_type.

@thofma thofma merged commit a4260dc into Nemocas:master Jul 19, 2024
25 of 26 checks passed
@joschmitt joschmitt deleted the js/traits branch July 19, 2024 09:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

solve for general zzModMatrix
3 participants